# 一点有趣的东西

# conda虚拟环境之一点有趣的东西

有感于之前linux下java环境的配置仅仅是解压jdk并配置环境变量,突然对python的环境配置产生了一点想法:莫非conda虚拟环境的配置也仅仅是配置一下环境变量即可。

Linux配置Java环境

首先在未激活虚拟环境以及不同虚拟环境的情况下打印环境变量PATH,可以看到确实是在变动,初步印证猜想。

lei@leideMacBook-Pro tmp % echo $PATH
/Users/lei/miniconda3/condabin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/homebrew/bin
lei@leideMacBook-Pro tmp % conda activate
(base) lei@leideMacBook-Pro tmp % echo $PATH
/Users/lei/miniconda3/bin:/Users/lei/miniconda3/condabin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/homebrew/bin
(base) lei@leideMacBook-Pro tmp % conda deactivate
lei@leideMacBook-Pro tmp % echo $PATH
/Users/lei/miniconda3/condabin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/homebrew/bin
lei@leideMacBook-Pro tmp % conda activate test
(test) lei@leideMacBook-Pro tmp % echo $PATH
/Users/lei/miniconda3/envs/test/bin:/Users/lei/miniconda3/condabin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/homebrew/bin

下一步在退出所有虚拟环境的情况下手动改变环境变量,看看是否可以正常使用环境。

经过测试,可以看到可以正常使用,猜想得到验证。

lei@leideMacBook-Pro tmp % echo $PATH
/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Users/lei/miniconda3/condabin:/opt/homebrew/bin:/opt/homebrew/bin
lei@leideMacBook-Pro tmp % python --version
zsh: command not found: python
lei@leideMacBook-Pro tmp % python3 --version
Python 3.9.6
lei@leideMacBook-Pro tmp % pip list
zsh: command not found: pip
lei@leideMacBook-Pro tmp % pip3 list
Package    Version
---------- -------
altgraph   0.17.2
future     0.18.2
macholib   1.15.2
pip        21.2.4
setuptools 58.0.4
six        1.15.0
wheel      0.37.0
WARNING: You are using pip version 21.2.4; however, version 23.2.1 is available.
You should consider upgrading via the '/Library/Developer/CommandLineTools/usr/bin/python3 -m pip install --upgrade pip' command.
lei@leideMacBook-Pro tmp % whereis python3
python3: /usr/bin/python3
lei@leideMacBook-Pro tmp % export PATH=/Users/lei/miniconda3/envs/test/bin:$PATH
lei@leideMacBook-Pro tmp % echo $PATH
/Users/lei/miniconda3/envs/test/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Users/lei/miniconda3/condabin:/opt/homebrew/bin:/opt/homebrew/bin
lei@leideMacBook-Pro tmp % python --version
Python 3.11.5
lei@leideMacBook-Pro tmp % python3 --version
Python 3.11.5
lei@leideMacBook-Pro tmp % pip list
Package                   Version
------------------------- ------------
altgraph                  0.17.4
anyio                     3.7.1
asgiref                   3.7.2
austin-python             1.5.1
austin-tui                1.2.3
...
lei@leideMacBook-Pro test % python pyreactpy_test.py
2023-09-30T11:53:14+0800 | WARNING | The `run()` function is only intended for testing during development! To run in production, consider selecting a supported backend and importing its associated `configure()` function from `reactpy.backend.<package>` where `<package>` is one of ['starlette', 'fastapi', 'sanic', 'tornado', 'flask']. For details refer to the docs on how to run each package.
2023-09-30T11:53:14+0800 | INFO | Running with starlette.applications.Starlette at http://127.0.0.1:7654
INFO:     Started server process [3186]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:7654 (Press CTRL+C to quit)
INFO:     127.0.0.1:61107 - "GET / HTTP/1.1" 200 OK
INFO:     127.0.0.1:61107 - "GET /index.a1f87a11.js HTTP/1.1" 200 OK
INFO:     ('127.0.0.1', 61112) - "WebSocket /_reactpy/stream" [accepted]
INFO:     connection open
INFO:     127.0.0.1:61107 - "GET /reactpy-logo.ico HTTP/1.1" 200 OK